package club.ljwang.dao;

import club.ljwang.entity.Result;
import club.ljwang.pojo.Menu;
import club.ljwang.pojo.Permission;
import club.ljwang.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface RoleMapper {

    List<Menu> findAllMenu(@Param("id") Integer id);

    int deleteByPrimaryKey(Integer id);

    int insert(Role record);

    int insertSelective(Role record);

    Role selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Role record);

    int updateByPrimaryKey(Role record);

    Set<Role> selectByUserId(Integer id);

    List<Permission> findAllPermission();

    List<Role> findPage(@Param("queryString") String queryString);

    void add(Role role);

    void setRoleAndPermission(@Param("permissionId") Integer permissionId,@Param("roleid") Integer roleid);

    void setRoleAndMenu(@Param("menuId") Integer menuId,@Param("roleid") Integer roleid);

    Integer findRoleByPermissionId(@Param("id") Integer id);

    Integer findRoleByMenuId(@Param("id") Integer id);

    void deletePermissionIds(@Param("id") Integer id);

    void deleteMenuIds(@Param("id") Integer id);

    void deleteRole(@Param("id") Integer id);

    Role findById(Integer id);

    List<Integer> findPermissionIdsByRoleId(@Param("id") Integer id);

    List<Integer> findMenuIdsByRoleId(@Param("id") Integer id);

    void edit(Role role);

    void deleteRoleAndPermission(@Param("id") Integer id);

    void deleteRoleAndMenu(@Param("id") Integer id);

    List<Integer> getMenus(Integer roleId);
}